using System;
using UnityEngine;

public class Bullet : MonoBehaviour
{
    public float damage; // 子弹的伤害值
    public int per; // 子弹的穿透次数

    Rigidbody2D rigid;

    void Awake()
    {
        rigid = GetComponent<Rigidbody2D>(); // 获取子弹的刚体组件
    }

    public void Init(float damage, int per, Vector3 dir)
    {
        this.damage = damage; // 初始化子弹的伤害值
        this.per = per; // 初始化子弹的穿透次数

        if (per > -1)
        {
            rigid.velocity = dir * 15f; // 如果子弹具有穿透次数，则设置子弹的初始速度和方向
        }
    }

    void OnTriggerEnter2D(Collider2D collision)
    {
        if (!collision.CompareTag("Enemy") || per == -1) return; // 如果碰撞物体不是敌人或子弹没有穿透次数，直接返回

        per--; // 穿透次数减一

        if (per == -1)
        {
            rigid.velocity = Vector2.zero; // 如果穿透次数减到-1，即没有穿透能力了，将子弹的速度设为零
            gameObject.SetActive(false); // 将子弹设为非激活状态，使其隐藏或回收
        }
    }

    void OnTriggerExit2D(Collider2D collision)
    {
        if (!collision.CompareTag("Area")) return;
        gameObject.SetActive(false);
    }
}
